<?php

/**
 * home_profesional actions.
 *
 * @package    aceptor
 * @subpackage home_profesional
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class home_profesionalActions extends sfActions
{



  public function executeIndex(sfWebRequest $request)
  {


      $now        =  mktime(0,0,0,date('m'),date('d'),date('Y'));
      $criterio   =  new Criteria();
      $id_user    =  $this->getUser()->getAttribute('ses_user_id',null);
      $id_paquete =  $this->getUser()->getAttribute('ses_paquete_id',null);

      if($id_user!=null && $id_paquete!=null )
      {
              $servicePlanes = new servicePlanes($id_paquete);
              // si tiene paquete

              $criterio->add(TbEstadoCuentaPeer::TB_USUARIO_ID,$id_user);
              $estadoCuentaBean = TbEstadoCuentaPeer::doSelectOne($criterio);
              //si tiene paquete
              if(is_object($estadoCuentaBean))
              {
                    // busco las fechas para actualizarlo
                    $criterio->clear();
                    $criterio->add(TbEstadoCuentaPeer::TB_USUARIO_ID,$id_user);
                    $criterio->add(TbEstadoCuentaPeer::FECHA_FIN, $now, Criteria::LESS_EQUAL);
                    $estadoCuentaBeanUpdate = TbEstadoCuentaPeer::doSelectOne($criterio);
                    // si la consulta encontro data .... quiere decir que
                    // que ya vencio el mes y procedo a renovarle la cuota mensual
                    if(is_object($estadoCuentaBeanUpdate))
                    {

                         $estadoCuentaBean->setCuotaDisponible($servicePlanes->getCantidadArchivos());
                         $estadoCuentaBean->setValorActual($servicePlanes->getCantidadArchivos());
                         $fecha_constante = mktime(0,0,0,date('m')+1,28,date('Y'));
                         $estadoCuentaBean->setFechaFin(date($fecha_constante));
                         $estadoCuentaBean->save();
                         /* esta session se utiliza para que los componentes_pagado
                          * devuelvan la informacion del paquete
                          */
                         $this->getUser()->setAttribute('ses_estado_cuenta_paquete',$estadoCuentaBean);

                    }
                    else
                    {    //error
                         if($id_paquete!=$estadoCuentaBean->getPaqueteId())
                         {
                             $estadoCuentaBean->setCuotaDisponible($servicePlanes->getCantidadArchivos());
                             $estadoCuentaBean->setValorActual($servicePlanes->getCantidadArchivos());
                             $fecha_constante = mktime(0,0,0,date('m')+1,28,date('Y'));
                             $estadoCuentaBean->setFechaFin(date($fecha_constante));
                             $estadoCuentaBean->setPaqueteId($id_paquete);
                             $estadoCuentaBean->save();

                             $this->getUser()->setAttribute('ses_estado_cuenta_paquete',$estadoCuentaBean);
                         }
                         else
                         {
                             $this->getUser()->setAttribute('ses_estado_cuenta_paquete',$estadoCuentaBean);
                         }

                    }
              }
              else
              {      // si no tiene le registro uno
                    $servicePlanes->RegistarPaqueteAceptor($id_user);
                    $estadoCuentaBean = TbEstadoCuentaPeer::doSelectOne($criterio);
                    if(is_object($estadoCuentaBean))
                    { // registro exitosamente

                      $this->getUser()->setAttribute('ses_estado_cuenta_paquete',$estadoCuentaBean);
                    }
                    else
                    { // no se registro exitosamente
                      $this->redirect("@homepage");
                    }

              }


      }
      else
      {
        $this->redirect("@homepage");
      }

  }


}
